package model

func init() {
	Register(&FWBoss{})
}

func NewFWBoss() *FWBoss {
	return &FWBoss{Values: map[string]FWBossValues{}}
}

const (
	FWBossStatusNone   int8 = 0
	FWBossStatusFind   int8 = 1
	FWBossStatusShare  int8 = 2
	FWBossStatusDelete int8 = 3 //取消分享
)

type FWBossValues struct {
	HP       int64   `bson:"hp,omitempty" json:"hp"`
	UnitList []int32 `bson:"unitList" json:"unitList"`
}
type FWBoss struct {
	Id     string                  `json:"id" bson:"_id"`
	Iid    int32                   `json:"bossID" bson:"iid"`
	Uid    string                  `json:"uid" bson:"uid" index:"name:_idx_uid_primary,Sort:asc,Priority:99"`   //boss所属玩家
	Kill   int64                   `json:"kill" bson:"kill"`                                                    //击杀时间s
	HP     int64                   `json:"hp" bson:"hp"`                                                        //血量
	Update int64                   `json:"-" bson:"update" index:"name:_idx_uid_primary,Sort:desc,Priority:0" ` //最后更新时间
	Status int8                    `json:"status" bson:"status"`                                                //0 - 初始状态，1-已经发现（EndFindBattle），2-分享
	Expire int64                   `json:"expire" bson:"expire" `                                               //过期时间 S
	Values map[string]FWBossValues `json:"values,omitempty" bson:"values"`                                      //UID-累计伤害

	//Start  int64            `json:"startTime" bson:"startTime"`                                               //开始时间s
	//BattleList map[string]*FWBossBattleList `json:"battleList" bson:"battleList"` //战斗记录  uid=>FWBossBattleList
	//TODO 过期时间
	//Share int32 `json:"share" bson:"share"` //分享标记
	//Find  int8  `json:"find" bson:"find"`   //是否已经发现
	//ShareList  []string     `json:"shareList" bson:"shareList"`   //分享列表
	//FindReward string           `json:"findReward" bson:"findReward"` //发现奖励
	//KillReward string           `json:"killReward" bson:"killReward"` //获得击杀奖励者
	//RewardList []*ItemGroup     `json:"rewardList" bson:"rewardList"` ////领取奖励列表
}

//type FWBossBattleList struct {
//	Time int64 `json:"time" bson:"time"`
//	Flag int8  `json:"flag" bson:"flag"`
//}

type ItemGroup struct {
	Id  int32 `json:"id" bson:"id"`
	Num int32 `json:"num" bson:"num"`
	Key int32 `json:"key" bson:"key"`
}

func (ig *ItemGroup) GetId() int32 {
	return ig.Id
}

func (ig *ItemGroup) GetNum() int32 {
	return ig.Num
}
